package com.bite.xml_basic_write;

import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.FileOutputStream;
import java.io.OutputStream;

/**
 *
 * 使用dom4j写出一个xml
 * 将当期内存中document输出到硬盘上,同时生成一个xml文件
 */
public class Demo1 {
    public static void main(String[] args) throws  Exception {


        //读取当期resources下面contact.xml
        Document doc = new SAXReader().read(Demo1.class.getClassLoader().getResource("contact.xml"));


        //创建一个输出流对象:
        /**
         * 通过源码:
         * public XMLWriter(Writer writer)
         * 复习:
         *     字符输出流
         *     Writer  FileWriter  outputStreamWriter()   BufferedWriter
         *     PrintWriter  :字符打印流
         *     ObjectOutputStream   :序列化
         *
         *           write(char ch)
         *           write(char[] data)
         *           writer(String str)
         *      字节输出流
         *          write(byte )
         *          write(byte[] data)
         */
        /**
         * 修改文件的文件:
         *  1)读取原xml文件:dom4l  解析器
         *  2)创建输出流对象,指定硬盘输出路径
         *  3)将内存中的document对象利用XMLWriter对象覆盖原来文件
         */


        OutputStream outputStream = new FileOutputStream("e:/contact.xml") ;
        //将内存中的document 输出到硬盘上
        //没有指定OutputFormat输出格式:默认是一种优雅的格式(带空格换行的)
        XMLWriter writer = new XMLWriter(outputStream) ;
        //输出文档对象
        writer.write(doc);
        //关闭流
        outputStream.close();
    }
}
